//封装axios请求
import axios from "axios";
//引入ElementUI的Message模块
import { ElMessage } from 'element-plus';

//设置基础url
//axios.defaults.baseURL = 'http://localhost:8083/hisSystem';
axios.defaults.baseURL = '/api';

//设置请求头
axios.defaults.headers.post["Content-Type"]="application/json;charset=UTF-8";

//设置超时时间
axios.defaults.timeout= 10000

//封装请求拦截器
axios.interceptors.request.use(
    config => {
        //未来可以添加token进行管理工作
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

//封装响应拦截器
axios.interceptors.response.use(
    config => {
        if(config.data.code === 200){
            //confirm("200");
            return config;
        }else if(config.data.code === 500){
            //ElMessage.warning({message:config.data.msg});
            confirm("500");
            return config;
        }
    },
    error => {
        if (error.response.status == 504 || error.response.status == 404) {
            ElMessage.error({ message: '服务器故障' })
        } else if (error.response.status == 403) {
            ElMessage.error({ message: '权限不足，请联系管理员' })
        } else if (error.response.status == 401) {
            //mymessage.error({message: error.response.data.msg ? error.response.data.msg : '尚未登录，请登录'})
            router.replace('/');
        } else {
            if (error.response.data.msg) {
                ElMessage.error({ message: error.response.data.msg })
            } else {
                ElMessage.error({ message: '未知错误!' })
            }
        }
        console.log(error);
        return Promise.reject(error);
    }
)

//封装常用请求，例如post、get
export default {
    post(url,data){
        return new Promise((resolve,reject)=>{
            axios({
                method:'post',
                url:url,
                data:data
                //不知道是否需要序列化
            }).then(res=>{
                //console.log("test"+res.data);
                resolve(res.data) 
            }).catch(err=>{
                console.log("testerr"+err);
                reject(err)
            });
        })
    },
    get(url,params){
        console.log({params});
        return new Promise((resolve,reject)=>{
            axios({
                method:'get',
                url:url,
                params:params
                //不知道是否需要序列化
            }).then(res=>{
                resolve(res.data)
            }).catch(err=>{
                reject(err)
            });
        })
    }
    
}